home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / rbbs / rbbs_mpl.zip / RBBSCHAT.DOC < prev    next >
Text File  |  1992-07-05  |  10KB  |  192 lines

  1.  
  2.  
  3.   RBBS-PC Internode chat modifications  Release 3.00    August 28 1990
  4.   Copyright 1989-1990 by John Morris  All Rights Reserved.
  5.  
  6.   Written By:
  7.   John Morris
  8.   TradeWars Software
  9.  
  10.   I can be reached on my BBS:
  11.   The Reno RBBS
  12.   (702)746-1358  Voice  (limited hours)
  13.   (702)746-1364  Strictly V32
  14.   (702)746-1365  USR-HST
  15.  
  16. NOTE:
  17. Modified RCHAT300.BAS/RCHAT300.STB files to be used with MAple version
  18. ONLY )included in RBBS-MPL.ZIP file
  19.  
  20.   CHAT.MNU          chat help, a menu list of chat commands.
  21.  
  22.   This code is intended to be compiled with QuickBASIC 3.0 or later, mainly
  23.   because I make generous use of block IF..END IF statements. I also don't
  24.   use a whole lot in the way of line-numbers, which means I use quite a few
  25.   DO..LOOP statements.
  26.  
  27.   This will one of many releases of this code, and it is my third release
  28.   of my internode chat code.  I wanted the ability of the user to page another,
  29.   and I also wanted to see if I could emulate a 'True chat'.
  30.  
  31. NOTE:  True Chat removed in Maple version to save code !!
  32.  
  33.  I do realize that
  34.   there are quite a few chat products out there in BBS-land, but none follows
  35.   the RBBS tradition of including source code, which means that they have to be
  36.   implemented as doors.
  37.   My logic is that if a system is popular enough to have multiple nodes, it has
  38.   a good file & message bases (doors are generally secondary in multi-node
  39.   systems)  So, why should a guy have to open a door?  Just my humble opinion.
  40.   So anyways, here is the code for you to play with.
  41.  
  42.   You are free to modify the code for implementation in your system, but you
  43.   may not distribute this code in modified form!  If you'd like to see your
  44.   mods incorporated into the official release of this mod, then give me a
  45.   jingle, and I'll happy to talk with you about your mods.
  46.  
  47.   How its -supposed- to work
  48.   --------------------------
  49.  
  50.   This mod will give your users access to 2 new commands. Rather than message
  51.   around with CONFIG I decided all 'options' will have to be hard-coded, which
  52.   means these commands are hard-coded.  The commands are:  CHAT  and  @
  53.   (The '@' is for turbo-key users)  you can, of course, change these to
  54.   whatever you like (they are found in R-PCCHAT.MRG).  For the first couple
  55.   o' releases I made 2 separate ways to chat. Starting with 3.00 there is one
  56.   chat routine, that will function like two. All chats are character by
  57.   character. Each node uses a 72 byte ring-buffer to hold the typed text.
  58.   (Thanks go out to Cary Kolker for help on the ring buffer!)  Because each
  59.   character typed by each node must be saved to disk, there is always the
  60.   possibility of things going wrong. Thats the main reasoning behind the
  61.   ring-buffer.  For best performance, and to save where and tear on your
  62.   hard disk, I suggest modifying RCHAT300.BAT where it says:
  63.  
  64. NOTE:
  65.      STOCK RCHAT300 was  CONST ChatFileName$ = "RBBSCHAT.DEF"
  66.  
  67. Maple mods use CONFIG to set this Drive !!!
  68.  
  69.   Change that to a RAM drive. For instance, if your RAM drive was drive H,
  70.   you'd change it to:
  71.  
  72.      CONST ChatFileName$ = "H:RBBSCHAT.DEF"
  73.  
  74.   The chat mod also uses shared files with record locking. This means you need
  75.   to have SHARE loaded on each node running the chat mods. (you can find
  76.   SHARE.EXE on your DOS disk)  RBBSCHAT.DEF is opened in SHARED mode, with
  77.   read & write access (nobody is denied access). A record will be locked
  78.   immediately prior to a read or write operation. It will be unlocked
  79.   right after the read/write operation. This does not operate in the same
  80.   manner as RBBS-PC itself!  I fully realize this.  I don't think the chat
  81.   would work at all using the same file locking methods as RBBS, so I did
  82.   not try to use the RBBS methods.  I may be wrong, and I realize that.
  83.   As long as most folks are using DOS 3.1 or above, we might as well make use
  84.   of its abilities.
  85.  
  86. NOTE:  DesQview routine ARE supported !
  87.  
  88.   RBBS-VAR.MOD. Incuded with Maple merges!
  89.  
  90.   All mods are commented with 'CHATxxxx'  (where xxxx is the date) starting
  91.   at column 70.
  92.  
  93.  
  94.   Update History:
  95.   ---------------
  96.   02/14/90   First bungled release.. forgot to put CHATHELP into the ZIP
  97.   1.00       file I uploaded to a couple places. Fixed that on my system,
  98.              but a lot of guys missed it.
  99.  
  100.   03/22/90   Second release. Went and added some improvements, and implemented
  101.   2.00       some of Tom Macks ideas for internode chat.  These include
  102.              a way for each user to 'lock-out' a page attempt from other
  103.              nodes. This allows them to roam in privacy.  The option is toggled
  104.              from the (where else?) T)oggle options prompt.
  105.  
  106.              Thanks go out to Cary Kolker for doing something very similar to
  107.              what I was planning for the TrueCh@. Basically to keep some
  108.              systems from dropping chars here-and-there, Cary implemented
  109.              the TrueCh@ in a 'ring buffer' concept.  Adding only about 6
  110.              or 7 lines to the existing code.
  111.  
  112.              Also, I attempted to implement a way to save the node chats to
  113.              disk (as per the SysOps option, check RCHAT300.MRG in the comments
  114.              for info on how to turn this option on.. I didn't wanna screw
  115.              around with CONFIG) I took the following ideas into consideration:
  116.  
  117.              1: Each chat should have its own unique filename.
  118.                 -OR, 1a: would one file be okay??
  119.              2: One node should write the chat to disk to make sure that
  120.                 the text is saved in correct order. And this also keeps
  121.                 the entire chat in the same file.
  122.                 -OR, 2a: would it be okay if each node:
  123.                          a: opened the chat file (in file-locked mode)
  124.                          b: appended its text to the end
  125.                          c: closed the chat file
  126.                      for EACH line typed by EACH node?
  127.              3: Users are told if the SysOp has told the chat mods to save the
  128.                 chat to a file.
  129.  
  130.              Problem with above??:
  131.              ---------------------
  132.              Anyways, Using my ideas (1, 1a, 2 and 2a) there are lots of
  133.              problems to consider.. not being a great programmer I might
  134.              have missed some brilliant idea, but these are problems I see
  135.              with the above:
  136.  
  137.              Ideas 1a and 2a would work fine together, but how would we know
  138.              where one chat starts and/or ends? or does it matter?
  139.  
  140.              Ideas 1 and 2a present another problem, how would each node
  141.              know the unique filename for that chat?
  142.  
  143.              There are more problems, just give it a little thought.
  144.  
  145.              I chose to implement ideas 1 and 2 in this fashion:  The node
  146.              that initiates the chat (in this case one node pages another)
  147.              saves the chat to disk using a unique filename (using time and
  148.              date info).  If another user joins in, that node realizes it has
  149.              not paged, and does try to save anything to disk. What happens
  150.              when nodes are 'squelched'?
  151.  
  152.              Maybe, each chat should have a 'process number' which identifies
  153.              the chat as unique.
  154.  
  155.              Actually, I'm not going to say:  "This is how it works, so live
  156.              with it!"  I'd rather get input from every SysOp who wants to
  157.              contribute and then proceed from there.  How should the above
  158.              ideas be worked out?
  159.  
  160.              In the end, I think that I'll plan each chat as a separate
  161.              'process'. Each process has its own unique name or number, and
  162.              then the chats will be saved according to process number.
  163.  
  164.   08/28/90   Heavily modified the chat code. All chats are now character by
  165.   3.00       character. This works fine even with multiple nodes. A TrueChat
  166.              is now considered a private chat between two nodes, and does
  167.              not have its own separate subroutine. The mod now uses a menu
  168.              system instead of using separate Ctrl-x sequences for each
  169.              'command'  You now type 'Ctrl-Q or ESCape' to get the chat menu,
  170.              and a chat command prompt, and you can then page someone, see
  171.              who is on, etc, from the prompt. To exit back into Chat, you
  172.              simply type C (for Chat) or [ENTER].  The W)hos on section was
  173.              rewritten to tell the user what the other user might be doing.
  174.              For instance, a user might be in Doors, or may be in the message
  175.              system, or in the file system. Whos on will now tell them. If the
  176.              user sees a CITY after the other users name, they are likely
  177.              to be able to page them. The file number used by RCHAT300 was
  178.              changed to 9, becuase I failed to realize that file 7 was used
  179.              by the voice board driver.
  180.  
  181.  
  182.   Revision numbers for RBBS Chat mods.
  183.   ------------------------------------
  184.   Revision numbers are as follows:  x.yz
  185.                                     x    gets incremented when code is added
  186.                                          or heavily modified.
  187.                                     y    gets incremented on a major bug fix
  188.                                          release
  189.                                     z    gets incremented on a minor fix
  190.  
  191.   End of RBBSChat.doc
  192.